#pragma once
#include <set>

#include "DataStructure/Common/DataStructureNamespace.h"
#include "DataStructure/Common/Integer.h"
SG_DATASTRUCTURE_FEM_NAMESPACE_OPEN
/** \enum LoadTypes
 *
 * 载荷类型枚举
 */
enum LoadType : SG::DataStructure::Common::I8
{
    LOAD_Unkown             = -1,  ///< 未找到属性定义
    LOAD_ConcentratedForce  = 0,   ///< 集中力载荷
    LOAD_ConcentratedMoment = 1,   ///< 集中弯矩载荷
    LOAD_Gravity            = 2,   ///< 重力加速度
    LOAD_Force1             = 3,   ///< 集中力载荷1
    LOAD_Moment1            = 4,   ///< 集中弯矩载荷1
    LOAD_Force2             = 5,   ///< 集中力载荷2
    LOAD_Moment2            = 6,   ///< 集中弯矩载荷2
    //  LOAD_LoadCombination = 2,      ///< 一系列载荷集的线性组合
    LOAD_CONV    = 9,    ///< 自由对流边界条件 进行热传递分析
    LOAD_DAREA   = 10,   ///< 定义静态和动态载荷的比例（面积）因子
    LOAD_DELAY   = 11,   ///< 延迟项
    LOAD_DLOAD   = 12,   ///< 动态载荷集
    LOAD_DPHASE = 13,   ///< 相位项
    LOAD_LOAD    = 14,   ///< 静态载荷集
    LOAD_LSEQ    = 15,   ///< 定义静态加载集序列
    LOAD_PLOAD1  = 16,   ///< 压力载荷形式1
    LOAD_PLOAD2  = 17,   ///< 压力载荷形式2
    LOAD_PLOAD4  = 18,   ///< 压力载荷形式4
    LOAD_PLOAD   = 19,   ///< 压力载荷
    LOAD_QBDY3   = 20,   ///< 定义边界表面的均匀热流负荷。
    LOAD_RLOAD1  = 21,   ///< 频率依赖载荷形式1
    LOAD_RLOAD2  = 22,   ///< 频率依赖载荷形式2
    LOAD_TLOAD1  = 23,   ///< 瞬态载荷形式1
    LOAD_TLOAD2  = 24,   ///< 瞬态载荷形式2
    LOAD_SLOAD   = 25,   ///< 在标量点或网格点上定义集中的静态负载。
    LOAD_ACSRCE  = 26,   ///< 声源规范
};

using LoadTypeSet = std::set<SG::DataStructure::FEM::LoadType>;
SG_DATASTRUCTURE_FEM_NAMESPACE_CLOSE